package com.smart.system.service;

import com.smart.common.core.domain.DeviceInfo;
import com.smart.common.core.domain.MobileResult;
import com.smart.common.core.domain.VehicleTripInfo;
import com.smart.system.domain.AreaLocation;

import java.util.List;

/**
 * 车载设备 服务层
 */
public interface IMobileUnitService {
    /**
     * 获取用户登录会话
     * @param account
     * @param password
     * 接口说明及错误码
     *     用户登录
     * URL
     *     https://218.93.208.93:8888/StandardApiAction_login.action?
     * HTTP请求方式
     *     GET/POST
     * @return
     */
    public MobileResult getSession(String account, String password);

    /**
     * 获取session
     * @return
     */
    public MobileResult getSession();

    /**
     * 获取车辆实时视频链接
     * @param carNumber 车辆编号
     */
    public String getVideoUrl(String carNumber);

    /**
     * 获取指定车辆定位
     */
    public AreaLocation getLocation(String carNumber);

    /**
     * 获取多个车辆定位
     */
    public List<AreaLocation> getLocation(List<String> carNumbers);

    /**
     * 获取车载设备是否在线
     * @param carNumber 车辆编号
     * @return 0在线 1离线
     */
    public Integer getDeviceOnline(String carNumber);

    /**
     * 获取参数中在线设备
     */
    public List<String> getDeviceOnline(List<String> carNumbers);

    /**
     * 获取里程报表
     * @param carNumbers
     * @param startTime
     * @param endTime
     * @return
     */
    public List<VehicleTripInfo> getMileageStatement(List<String> carNumbers, String startTime, String endTime);

    /**
     * 获取当前车辆详信息
     */
    public List<DeviceInfo> getCarInfoDetails(List<String> carNumbers);
}
